package kim.bat.utils.mvi

import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob

/**
 * 创建一个协程作用域 默认主线程
 * 使用完后调用 cancel 释放
 * 适合在非 ViewModel 环境托管 UI 订阅
 */
fun newScope(dispatcher: CoroutineDispatcher = Dispatchers.Main): CoroutineScope {
    return CoroutineScope(SupervisorJob() + dispatcher)
}